package io.jt808.proto.cmd;

import io.norland.buffer.AutoBuffer;
import io.norland.annotations.Proto;
import io.norland.proto.IProto;
import io.jt808.proto.item.ParameterItem;
import io.jt808.proto.item.ParameterItemUtil;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 设置终端参数
 */
@Proto("8103")
@Data
public class JT8103 implements IProto {
    /**
     * 参数个数
     */
    private byte parametersCount;
    /**
     * 参数列表
     */
    private List<ParameterItem> parameters;

    public byte[] writeToBytes() {
        AutoBuffer buff = new AutoBuffer();
        buff.writeByte(parametersCount);
        ParameterItemUtil.writeParamByte(buff, parameters);
        return buff.array();
    }


    public void readFromBuf(AutoBuffer buff) {
        parametersCount = buff.readByte();
        parameters = new ArrayList<>();
        ParameterItemUtil.readParamByteFromBuf(buff, parameters);
    }

//    public static void main(String[] args) {
//        byte[] bytes = new byte[]{
//                0x06,
//                0x00,0x00,(byte) 0xF0, 0x00,
//                0x01,
//                0x47,
//                0x00,0x00,(byte) 0xF0, 0x01,
//                0x02,
//                0x00, 0x03,
//                0x00,0x00,(byte) 0xF0, 0x02,
//                0x03,
//                0x01, 0x00, 0x01,
//                0x00,0x00,(byte) 0xF0, 0x03,
//                0x04,
//                0x00, 0x01, 0x00, 0x01,
//                0x00,0x00,(byte) 0xF0, 0x04,
//                0x05,
//                0x00, 0x00, 0x01, 0x00, 0x01,
//                0x00,0x00,0x01,0x05,
//                0x06,
//                0x01,0x02,0x03,0x04,0x05,0x06
//
//        };
//        JT8103 jt8103 = new JT8103();
//        jt8103.readFromBuf(new AutoBuffer(bytes));
//        System.out.println(new String(bytes).equals(new String(jt8103.writeToBytes())));
//    }
}